Contextually-based functional assignment for a user-manipulable element on an input device

ABSTRACT

In certain embodiments, a computer-implemented method includes detecting a selectable control element on a graphical user interface (GUI), determining an editable parameter associated with the selectable control element, associating a control of the editable parameter with a user-manipulable element on an input device, and generating and sending, to the input device, control data causing the input device to assign a performance characteristic to the user manipulable element based on properties of the editable parameter. In some aspects, the user manipulable element can be a rotatable knob on the input device. The performance characteristic may include a rotation resistance of the knob, a rotational input resolution of the knob (e.g., rotation sensitivity), setting a ratchet or non-ratchet mode of operation to the knob based on the properties of the editable parameter (e.g., by controlling an electro-magnetic actuator to set the ratchet or non-ratchet modes), or a depressible knob.

CROSS-REFERENCES TO RELATED APPLICATIONS

This application is a non-provisional application and claims the benefitand priority of U.S. Provisional Application No. 62/433,187, filed onDec. 12, 2016, and titled “CONTEXTUALLY-BASED FUNCTIONAL ASSIGNMENT FORA USER-MANIPULABLE ELEMENT ON AN INPUT DEVICE,” which is herebyincorporated by reference in its entirety for all purposes.

BACKGROUND

Peripheral devices generally include any auxiliary device that can beused to interface human and computer. Some common peripheral devicesinclude keyboards, computer mice, image scanners, speakers, microphones,web cameras, and more.

Keyboards and computer mice, in particular, have improved in functionand performance over the last few decades to increase user productivity.For instance, the advent of function keys, key pads, programmable hotkeys, scroll wheels, and the like, have helped users become moreefficient by placing commonly used functions in quickly accessiblelocations. However, despite these improvements, more powerful,feature-laden software (e.g., Photoshop®) still requires users tonavigate cumbersome and sometimes non-intuitive interfaces with nestedmenus and windows that still can make for highly inefficientwork-sessions, especially for software users that are not highlyexperienced or steeped in the particular software. New developments areneeded to improve the user interface, streamline workflow, and increasework efficiencies across a broad spectrum of applications.

BRIEF SUMMARY

In certain embodiments, a computer-implemented method includesdetecting, by a processor on a host computing device, a selectablecontrol element on a graphical user interface (GUI) and determining, bythe processor, an editable parameter associated with the selectablecontrol element. The method further includes associating a control ofthe editable parameter with a user-manipulable element on an inputdevice, and generating and sending, by the processor to the inputdevice, control data causing the input device to assign a performancecharacteristic to the user manipulable element based on properties ofthe editable parameter. In some aspects, the user manipulable elementcan be a rotatable knob on the input device. Alternatively, the inputdevice can be a standalone device (e.g., not associated with a keyboard,computer mouse, or the like).

The performance characteristic may include a rotation resistance of theknob, a rotational input resolution of the knob (e.g., rotationsensitivity), setting a ratchet or non-ratchet mode of operation to theknob based on the properties of the editable parameter, or a depressibleknob. In some aspects, the control data controls an electro-magneticactuator (e.g., clutch) in the control knob to set the ratchet mode andnon-ratchet mode of operation. The method can further include receivinga first input data corresponding to a rotation of the knob, receiving asecond input data corresponding to the rotation of the knob, andapplying the first input data and second input data to the editableparameter as a single continuous input when the first and second inputsare received within a threshold time.

In some embodiments, the knob can further include a touch sensor on asurface of the knob, and associating a control of the editable parameterwith the knob can further include assigning a function with the touchsensor. The function may include entering a value of the editableparameter in response to receiving input data corresponding to a touchdetected by the touch sensor, switching to a second editable parameterassociated with the selectable control element in response to receivinginput data corresponding to a touch detected by the touch sensor, or thelike.

In some embodiments, the knob can include a second touch sensor on aperimeter of the knob, where the function may include switching to asecond editable parameter associated with the selectable control elementin response to receiving input data corresponding to a touch detected bythe touch sensor, and input data corresponding to a touch detected bythe second touch sensor. In some cases, the knob can further include oneor more additional touch sensors around a perimeter of the knob todetect multiple simultaneous touches on the perimeter. The selectablecontrol element can be one of a selectable icon on the GUI, a selectableitem in a menu on the GUI, or a graphical element on the GUI.

In certain embodiments, the method can further include receiving, by theprocessor, input data corresponding to a movement of a cursor on theGUI, where the detecting the selectable control element on the GUIoccurs in response to detecting when the cursor is placed over theselectable control element. The user-manipulable element can include atouch sensor, and the assigning the performance characteristic to theuser-manipulable element can be performed further in response toreceiving an input corresponding to a touch on the touch sensor.

In some embodiments, an input device includes a housing, a processordisposed in the housing, a user-manipulable knob disposed on the housingand controlled by the processor, and a ratchet system disposed in theknob to apply one of a ratcheted or non-ratcheted mode to the knob,where the processor (of the input device) can control an operationalconfiguration of the user-manipulable knob based on control datareceived from the host computing device, where the operationalconfiguration may correspond to a contextual usage of the input deviceon the host computing device. The operational configuration can includean assigned ratcheted or non-ratcheted mode based on the control data.In some implementations, the input device further includes a touchsensor controlled by the processor and disposed on a surface of the knobto detect a touch, where the operational configuration further includesan assigned function associated with the touch sensor.

In certain embodiments, a computer-implemented system includes one ormore processors, and one or more non-transitory computer-readablestorage mediums containing instructions configured to cause the one ormore processors to perform operations including detecting, by aprocessor on a host computing device, a selectable control element on agraphical user interface (GUI), determining, by the processor, aneditable parameter associated with the selectable control element,associating a control of the editable parameter with a user-manipulableelement on an input device, and generating and sending, by the processorto the input device, control data causing the input device to assign aperformance characteristic to the user manipulable element based onproperties of the editable parameter. The user manipulable element canbe a rotatable knob on the input device.

In some embodiments, the performance characteristic may include arotation resistance (e.g., torque friction) of the knob, a rotationalinput resolution of the knob (e.g., rotation sensitivity), setting aratchet or non-ratchet mode of operation to the knob based on theproperties of the editable parameter, or a depressible knob. In someaspects, the control data controls an electro-magnetic actuator (e.g.,clutch) in the control knob to set the ratchet mode and non-ratchet modeof operation. The one or more non-transitory computer-readable storagemediums can further contain instructions configured to cause the one ormore processors to perform operations including receiving a first inputdata corresponding to a rotation of the knob, receiving a second inputdata corresponding to the rotation of the knob, and applying the firstinput data and second input data to the editable parameter as a singlecontinuous input when the first and second inputs are received within athreshold time.

In certain embodiments, the knob can further include a touch sensor on asurface of the knob, where associating a control of the editableparameter with the knob can further include assigning a function withthe touch sensor. The function can include entering a value of theeditable parameter in response to receiving input data corresponding toa touch detected by the touch sensor, or switching to a second editableparameter associated with the selectable control element in response toreceiving input data corresponding to a touch detected by the touchsensor, or the like.

In further embodiments, the knob can include one or more additionaltouch sensors around a perimeter of the knob to detect multiplesimultaneous touches on the perimeter. In some cases, the one or morenon-transitory computer-readable storage mediums further containinstructions configured to cause the one or more processors to performoperations including receiving, by the processor, input datacorresponding to a movement of a cursor on the GUI, where the detectingthe selectable control element on the GUI can occur in response todetecting when the cursor is placed over the selectable control element.The user-manipulable element can include a touch sensor, and assigningthe performance characteristic to the user-manipulable element can beperformed further in response to receiving an input corresponding to atouch on the touch sensor.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is set forth with reference to the accompanyingfigures.

FIG. 1 shows a typical implementation for a system utilizing acontextually-based functional assignment for a user-manipulable elementon an input device, according to certain embodiments.

FIG. 2 shows a system for operating an input device, according tocertain embodiments.

FIG. 3 shows a system for operating a host computing device, accordingto certain embodiments.

FIG. 4 shows a user-manipulable element, according to certainembodiments.

FIG. 5 shows a cutaway view of a user-manipulable element, according tocertain embodiments.

FIG. 6 shows a magnetic ratchet for a user-manipulable element,according to certain embodiments.

FIG. 7 shows a bi-stable clutch mechanism for an input device, accordingto certain embodiments.

FIG. 8 shows a simplified flow diagram for associating a function with auser-manipulable element on an input device, according to certainembodiments.

FIG. 9 shows aspects of associating a function with a user-manipulableobject, according to certain embodiments.

FIG. 10 shows aspects of associating a function with a user-manipulableobject on an input device, according to certain embodiments.

FIG. 11 shows aspects of associating a function with a user-manipulableobject on an input device, according to certain embodiments.

FIG. 12A shows aspects of associating a function with a user-manipulableobject on an input device, according to certain embodiments.

FIG. 12B shows aspects of associating a function with a user-manipulableobject on an input device, according to certain embodiments.

FIG. 13A-C shows aspects of associating a function with auser-manipulable object on an input device, according to certainembodiments.

DETAILED DESCRIPTION

Aspects of the present disclosure relate generally to input devices, andin particular to aspects of assigning a function to a user-manipulableobject on an input device, according to certain embodiments.

In the following description, various embodiments of assigning afunction to a user-manipulable object on an input device will bedescribed. For purposes of explanation, specific configurations anddetails are set forth in order to provide a thorough understanding ofthe embodiments. However, it will be apparent to one skilled in the artthat certain embodiments may be practiced or implemented without everydetail disclosed. Furthermore, well-known features may be omitted orsimplified in order to prevent any obfuscation of the novel featuresdescribed herein.

Conceptual Overview of Certain Embodiments

Some embodiments of the invention relate to a user-manipulable element(e.g., a knob) disposed on an input device (e.g., keyboard) that can beassigned a function based on a contextual interaction on a graphicaluser interface (GUI). More specifically, the input device may include auser-manipulable knob (see, e.g., element 150 of FIG. 1), a ratchetsystem disposed in the knob to apply a ratcheted or non-ratcheted mode,and one or more touch-sensitive sensors (“touch sensor(s)”) disposed ona surface of the knob. An operational configuration can be applied tothe knob which may control one or more aspects of knob rotation, knobrotation resolution, knob rotation resistance (e.g., torque friction),knob ratchet/no-ratchet modes, touch-based functions, and the like, asfurther discussed below. The operational configuration can be based on acontextual usage of the input device. For example, selectingalphanumeric text on a display may cause the knob to control functionsassociated with alphanumeric text, such as font size, font type, fontcolor, font position, and the like, as further discussed below.

The input device can be controlled by a host computing device. Forinstance, one or more processors of the host computing device can detecta selectable control element on a GUI (e.g., alphanumeric text),determine an editable parameter (e.g., font size) associated with theselectable control element, and associate a control of the editableparameter with a user-manipulable element on an input device. The one ormore processors can further generate and send control data causing theinput device (e.g., a processor of the input device) to assign aperformance characteristic to the knob based on properties of theeditable parameter. As discussed above, the performance characteristicmay include a rotation resistance of the knob, a rotational inputresolution of the knob (e.g., rotation sensitivity), a setting of aratchet or non-ratchet mode of operation to the knob based on theproperties of the editable parameter, a function of one or more touchsensors on the knob, or a depressible function (e.g., button press). Insome aspects, the control data can control an electro-magnetic actuator(e.g., clutch) in the control knob to set the ratchet mode andnon-ratchet mode of operation. In certain configurations, the touchsensor(s) may enter a value (e.g., controlled by rotating the knob) inresponse to receiving input data corresponding to a touch detected bythe touch sensor, or switch to a second editable parameter associatedwith the selectable control element in response to the input data.

Typical System Environment for Certain Embodiments

FIG. 1 shows a typical implementation for a system 100 utilizing acontextually-based functional assignment for a user-manipulable element150 on an input device 140, according to certain embodiments. System 100may include computer 110, display 120, input device 130 (e.g., “computermouse 130”), and input device 140 (e.g., “keyboard 140”). Keyboard 140can include a user-manipulable element 150 (“knob 150”). For system 100,input device 130 and keyboard 140 can be configured to control aspectsof computer 110 and display 120, as would be understood by one ofordinary skill in the art. Computer 110 can be referred to as a “hostcomputer” or a “host computing device.”

Computer 110 may include a machine readable medium (not shown) that isconfigured to store computer code, such as keyboard driver software, andthe like, where the computer code is executable by a processor (e.g.,processor(s) 302) of computer 110 to affect control of computer 110 byinput devices 130 and/or 140. The various embodiments described hereingenerally refer to input device 140 as a keyboard or similar inputdevice, however it should be understood that input device 140 can be anyinput/output (I/O) device, user interface device, control device, inputunit, or the like.

The user-manipulable element is typically described as a knob throughoutthis disclosure, however it should be understood that any suitableuser-manipulable element can be used, such as a button, scroll wheel,trackball, joystick, slider, or the like, as would be understood by oneof ordinary skill in the art. A “knob,” as described herein, can beinterchangeably referred to as a “dial” or “crown.”

Input device 140 is typically described as a keyboard throughout thisdisclosure, however it should be understand that any suitable inputdevice that can include a user-manipulable object, as described herein,can be used including, but not limited to, a computer mouse, a remotecontrol device, a wearable device (e.g., smart watch, wristband,glasses), a smart phone, or the like.

The host computing device is typically described as a desktop or laptopcomputing device. However, it should be understood that the hostcomputing device can be any suitable computing device further includinga tablet computer, a smart phone, a virtual or augmented realityinterface (e.g., having 2D or 3D displays), a holographic interface, orthe like. One of ordinary skill in the art would understand the manyvariations, modifications, and alternative embodiments thereof.

FIG. 2 shows a system for operating an input device 140, according tocertain embodiments. System 200 includes processor(s) 210, memory array220, power management system 230, communication system 240, and inputdetection 250. Each of the system blocks 220-250 can be in electricalcommunication with the processor(s) 210 (e.g., via a bus system). System200 may further include additional systems that are not shown ordiscussed to prevent obfuscation of the novel features described herein.System blocks 220-250 may be implemented as separate modules, oralternatively, more than one system block may be implemented in a singlemodule. In the context described herein, input device 140 can be akeyboard with knob 150, as described above with respect to FIG. 1.

In certain embodiments, processor(s) 210 comprises one or moremicroprocessors (μCs) and can be configured to control the operation ofsystem 200. Alternatively, processor(s) 210 may include one or moremicrocontrollers (MCUs), digital signal processors (DSPs), or the like,with supporting hardware and/or firmware (e.g., memory, programmableI/Os, etc.), as would be appreciated by one of ordinary skill in theart. Processor(s) 210 can control some or all aspects of operation ofinput device 140 (e.g., system block 220-250). Alternatively oradditionally, some of system blocks 220-250 may include an additionaldedicated processor, which may work in conjunction with processor 210.One of ordinary skill in the art would understand the many variations,modifications, and alternative embodiments thereof.

Memory array 220 may be configured to store information pertaining toone or more operational configurations of input device 140. As furtherdiscussed below, one or more operational configurations of input device140 may include setting performance characteristics of knob 150,including but not limited to, a rotation resistance of the knob, arotational input resolution of the knob (e.g., rotation sensitivity),setting a ratchet or non-ratchet mode of operation to the knob based onthe properties of the editable parameter, a function of a depressibleknob, a sensitivity of one or more touch sensors on knob 150, functionsassociated with multiple detected touches on knob 150 (by the touchsensors), their corresponding locations, and the like, as furtherdiscussed below.

Memory array 220 can further include stored input values associated withcorresponding keys of keyboard 150, as would be understood by one ofordinary skill in the art. Additionally, memory array 220 can store oneor more software programs to be executed by processors (e.g., inprocessor(s) 210). It should be understood that “software” can refer tosequences of instructions that, when executed by processing unit(s)(e.g., processors, processing devices, etc.), cause system 200 toperform certain operations of software programs. The instructions can bestored as firmware residing in read only memory (ROM) and/orapplications stored in media storage that can be read into memory forprocessing by processing devices. Software can be implemented as asingle program or a collection of separate programs and can be stored innon-volatile storage and copied in whole or in-part to volatile workingmemory during program execution.

Power management system 230 can be configured to manage powerdistribution, recharging, power efficiency, and the like, for inputdevice 140. In some embodiments, power management system 230 can includea battery (not shown), a USB based recharging system for the battery(not shown), and power management devices (e.g., low-dropout voltageregulators—not shown). In certain embodiments, the functions provided bypower management system 230 may be incorporated into processor(s) 210.The power source can be a replaceable battery, a rechargeable energystorage device (e.g., super capacitor, Lithium Polymer Battery, NiMH,NiCd), or a corded power supply. The recharging system can be anadditional cable (specific for the recharging purpose) or it can use aUSB connection to recharge the battery.

Communications system 240 can be configured to provide wirelesscommunication with computer 110, or other devices and/or peripherals,according to certain embodiments. Communications system 240 can beconfigured to provide radio-frequency (RF), Bluetooth®, infra-red (IR),ZigBee®, or other suitable communication technology to communicate withother computing devices and/or peripheral devices. System 200 mayoptionally comprise a hardwired connection to computer 110. For example,keyboard 140 can be configured to receive a Universal Serial Bus (USB)cable to enable bi-directional electronic communication with computer110 or other external devices. Some embodiments may utilize differenttypes of cables or connection protocol standards to establish hardwiredcommunication with other entities.

Input detection 250 can control the detection of a user-interaction withinput elements on input device 140. For instance, input module 250 candetect user inputs on knob 150, key presses on the various keys of inputdevice 140 (e.g., QWERTY keys, function keys, number pad keys, etc.), orother suitable input elements or device such as a media control button,voice-over-internet-protocol (VoIP) button, touch sensors (e.g., touchpads) and the like. In some embodiments, input detection 250 can work inconjunction with memory array 220 to detect inputs on input device 150and associate various functions with each input element (e.g., knob150).

Although certain necessary systems may not expressly discussed, theyshould be considered as part of system 200, as would be understood byone of ordinary skill in the art. For example, system 200 may include abus system to transfer power and/or data to and from the differentsystems therein.

It should be appreciated that system 200 is illustrative and thatvariations and modifications are possible. System 200 can have othercapabilities not specifically described herein. Further, while system200 is described with reference to particular blocks, it is to beunderstood that these blocks are defined for convenience of descriptionand are not intended to imply a particular physical arrangement ofcomponent parts. Further, the blocks need not correspond to physicallydistinct components. Blocks can be configured to perform variousoperations, e.g., by programming a processor or providing appropriatecontrol circuitry, and various blocks might or might not bereconfigurable depending on how the initial configuration is obtained.

Embodiments of the present invention can be realized in a variety ofapparatuses including electronic devices implemented using anycombination of circuitry and software. Furthermore, aspects and/orportions of system 200 may be combined with or operated by othersub-systems as required by design. For example, input detection 250and/or memory 220 may operate within processor(s) 210 instead offunctioning as a separate entity. In addition, the inventive conceptsdescribed herein can also be applied to a mouse, keypad, or othersimilar input device. For instance, aspects of system 200 can be appliedto a computer mouse, including knob 150. Further, system 200 can beapplied to any of the input devices described in the embodiments herein,whether explicitly, referentially, or tacitly described (e.g., wouldhave been known to be applicable to a particular input device by one ofordinary skill in the art). The foregoing embodiments are not intendedto be limiting and those of ordinary skill in the art with the benefitof this disclosure would appreciate the myriad applications andpossibilities.

FIG. 3 shows a system 300 for operating a host computing device (e.g.,host computing device 110), according to certain embodiments. System 300can be used to implement any of the host computing devices discussedherein with respect to FIGS. 1 and 4-13 and the myriad embodimentsdefined herein or within the purview of this disclosure but notnecessarily explicitly described. System 300 can include one or moreprocessors 302 that can communicate with a number of peripheral devices(e.g., input devices) via a bus subsystem 304. These peripheral devicescan include storage subsystem 306 (comprising memory subsystem 308 andfile storage subsystem 310), user interface input devices 314, userinterface output devices 316, and network interface subsystem 312. Userinput devices 314 can be any of the input device types described herein(e.g., keyboard, computer mouse, remote control, etc.). User outputdevices 316 can be a display of any type, including computer monitors,displays on handheld devices (e.g., smart phones, gaming systems), orthe like, as would be understood by one of ordinary skill in the art.Alternatively or additionally, a display may include virtual reality(VR) displays, augmented reality displays, holographic displays, and thelike, as would be understood by one of ordinary skill in the art.

In some examples, internal bus subsystem 304 can provide a mechanism forletting the various components and subsystems of computer system 300communicate with each other as intended. Although internal bus subsystem304 is shown schematically as a single bus, alternative embodiments ofthe bus subsystem can utilize multiple buses. Additionally, networkinterface subsystem 312 can serve as an interface for communicating databetween computer system 300 and other computer systems or networks.Embodiments of network interface subsystem 312 can include wiredinterfaces (e.g., Ethernet, CAN, RS232, RS485, etc.) or wirelessinterfaces (e.g., Bluetooth®, BLE, ZigBee®, Z-Wire®, Wi-Fi, cellularprotocols, etc.).

In some cases, user interface input devices 314 can include a keyboard(keyboard 140), a presenter, a pointing device (e.g., mouse, trackball,touchpad, etc.), a touch-screen incorporated into a display, audio inputdevices (e.g., voice recognition systems, microphones, etc.), HumanMachine Interfaces (HMI) and other types of input devices. In general,use of the term “input device” is intended to include all possible typesof devices and mechanisms for inputting information into computer system300. Additionally, user interface output devices 316 can include adisplay subsystem, a printer, or non-visual displays such as audiooutput devices, etc. The display subsystem can be any known type ofdisplay device. In general, use of the term “output device” is intendedto include all possible types of devices and mechanisms for outputtinginformation from computer system 300.

Storage subsystem 306 can include memory subsystem 308 and file storagesubsystem 310. Subsystems 308 and 310 represent non-transitorycomputer-readable storage media that can store program code and/or datathat provide the functionality of embodiments of the present disclosure.In some embodiments, memory subsystem 308 can include a number ofmemories including main random access memory (RAM) 318 for storage ofinstructions and data during program execution and read-only memory(ROM) 320 in which fixed instructions may be stored. File storagesubsystem 310 can provide persistent (i.e., non-volatile) storage forprogram and data files, and can include a magnetic or solid-state harddisk drive, an optical drive along with associated removable media(e.g., CD-ROM, DVD, Blu-Ray, etc.), a removable flash memory-based driveor card, and/or other types of storage media known in the art.

It should be appreciated that computer system 300 is illustrative andnot intended to limit embodiments of the present disclosure. Many otherconfigurations having more or fewer components than system 300 arepossible. The various embodiments further can be implemented in a widevariety of operating environments, which in some cases can include oneor more user computers, computing devices or processing devices, whichcan be used to operate any of a number of applications. User or clientdevices can include any of a number of general purpose personalcomputers, such as desktop or laptop computers running a standard ornon-standard operating system, as well as cellular, wireless andhandheld devices running mobile software and capable of supporting anumber of networking and messaging protocols. Such a system also caninclude a number of workstations running any of a variety ofcommercially available operating systems and other known applicationsfor purposes such as development and database management. These devicesalso can include other electronic devices, such as dummy terminals,thin-clients, gaming systems and other devices capable of communicatingvia a network.

Most embodiments utilize at least one network that would be familiar tothose skilled in the art for supporting communications using any of avariety of commercially available protocols, such as TCP/IP, UDP, OSI,FTP, UPnP, NFS, CIFS, and the like. The network can be, for example, alocal area network, a wide-area network, a virtual private network, theInternet, an intranet, an extranet, a public switched telephone network,an infrared network, a wireless network, and any combination thereof.

In embodiments utilizing a network server, the network server can runany of a variety of server or mid-tier applications, including HTTPservers, FTP servers, CGI servers, data servers, Java servers, andbusiness application servers. The server(s) also may be capable ofexecuting programs or scripts in response to requests from user devices,such as by executing one or more applications that may be implemented asone or more scripts or programs written in any programming language,including but not limited to Java®, C, C# or C++, or any scriptinglanguage, such as Perl, Python or TCL, as well as combinations thereof.The server(s) may also include database servers, including withoutlimitation those commercially available from Oracle®, Microsoft®,Sybase® and IBM®.

Such devices also can include a computer-readable storage media reader,a communications device (e.g., a modem, a network card (wireless orwired), an infrared communication device, etc.), and working memory asdescribed above. The computer-readable storage media reader can beconnected with, or configured to receive, a non-transitorycomputer-readable storage medium, representing remote, local, fixed,and/or removable storage devices as well as storage media fortemporarily and/or more permanently containing, storing, transmitting,and retrieving computer-readable information. The system and variousdevices also typically will include a number of software applications,modules, services or other elements located within at least one workingmemory device, including an operating system and application programs,such as a client application or browser. It should be appreciated thatalternate embodiments may have numerous variations from that describedabove. F or example, customized hardware might also be used and/orparticular elements might be implemented in hardware, software(including portable software, such as applets) or both. Further,connections to other computing devices such as network input/outputdevices may be employed.

Aspects of the Use and Configuration of the User-Manipulable Element

FIG. 4 shows a user-manipulable element 450, according to certainembodiments. User-manipulable element (“knob”) 450 can be disposed onany suitable input device (e.g., keyboard 440) and may include topsurface 456 and side surface 458. Top surface 456 may include touchsensor(s) 457 and side surface 458 may include touch sensor(s) 459. Knob450 can be rotated along path 451 and, in some cases, can be depressiblealong path 452 to register a “button click” as would be understood byone of ordinary skill in the art.

Knob 450 can include various performance characteristics that can be setor controlled locally (e.g., by processor 210), remotely (e.g., viacontrol signal generated by processor(s) 302), or a combination thereof.Some performance characteristics can include a rotation resistance (ofknob 450, a rotational input resolution of knob 450 (e.g., rotationsensitivity), a depressible knob function, setting a ratchet ornon-ratchet mode of operation (e.g., via a magnetic clutch and ratchetsystem disposed in knob 450—as described below in conjunction with FIGS.5-7) to knob 450 based on properties of an editable parameter (e.g.,associated with a selectable control element on a host computingdevice—further discussed below). In certain embodiments, touch sensors457, 459 can detect a single touch or simultaneous touches. Oneperformance characteristic of touch sensors can include a touchsensitivity (e.g., resolution). In some cases, one or more touch sensorson knob 450 (e.g., sensor 454, 457) can operate as a touch pad, allowinga user to, e.g., move a cursor on a display. In further embodiments,knob 450 can be a standalone unit. For instance, knob 450 may not beassociated with another input device (e.g., keyboard, computer mouse,etc.) and may operate independently (e.g., controlled by system 200).

In certain embodiments, touch sensors 454 and 457 may have similarfunctions, different functions, or complimentary functions. One exampleof a complimentary function is that top touch sensor 457 can be used forcourse adjustments (e.g., large scale zoom) while side touch sensor 454may control fine adjustments (e.g., small scale zoom). In some cases,top touch sensor 457 can be used to enter a value (see, e.g., FIG. 12A),or open a menu (e.g., pressing sensor 457 opens a visual UI menuallowing a user to switch between functions by rotating knob 450 orselecting with a computer mouse-controlled cursor).

In some cases, a user may want to have a quick-access method of gettingback to a global setting, such as a non-context sensitive setting forknob 450. For example, if a user is in a photo editing application andhas a specific tool selected, turning knob 450 may change aspects of theselected tool. If the user wants to change a different parameter alltogether (e.g., volume), pressing down knob 450 (depressing along path452) and rotating while knob 450 is depressed may be configured toperform an alternative function (e.g., switching to desktop, scrollup/down, volume control, etc.). One of ordinary skill in the art wouldunderstand the many variations, modifications, and alternativeembodiments thereof.

Rotational resistance can range from no rotational resistance (e.g., noadded resistance) to a high resistance to prevent a user from rotatingknob 450. For example, if a value (e.g., brightness) can be adjusted toa setting that can range from 0 to 100, knob 450 can be configured toprovide a relatively high rotational resistance at each limit. Forinstance, a rotational resistance may be low (i.e., a user can easilyrotate knob 450) from 1-99, and rotational resistance may be high (i.e.,a user cannot rotate knob 450 any further) at 0 and 100. In someembodiments, the rotational resistance may follow a particular torqueprofile such that the rotational resistance is lowest at 50 andincreases linearly or non-linearly as the minimum and maximum limits areapproached. Any suitable force profile can be applied, as would beunderstood by one of ordinary skill in the art. Rotational resistancecan be referred to as a torque friction, rotational friction, a torqueprofile (e.g., rotational resistance over a range), or the like.

Ratchet and non-ratchet mode may be set based on any suitable criteria.For example, ratchet mode may better apply to applications that have afinite number of settings, such as a selection of a number of availablepaint brushes in Photoshop®, a number of font sizes that are available,or the like. A non-ratcheted mode may be well suited for more analogsettings that have a continuous or high number of settings, such as aselection of a color from a band of hundreds, thousands, or millions ofavailable colors, a scroll bar (e.g., to scroll through a 100+ pagedocument), a volume, or the like.

Aspects of a Magnetic Ratchet Assembly

FIG. 5 shows a cutaway view of a user-manipulable element (“knob”) 500with a magnetic ratchet system disposed therein, according to certainembodiments. A ratchet system can be used to implement a simulatedratcheting effect on knob 500 when activated. When deactivated, knob 500may rotate freely with no ratcheting effect. In some embodiments,aspects of the ratcheting including the magnitude of each ratchet (e.g.,how much travel between each ratchet “click”) and a resistance of theratchet (e.g., how much force is required to rotate knob 500 in ratchetmode) can be controlled by, for example, processor 210, processor 302,or a combination thereof, as further discussed below. In one example,knob 500 may be configured for a ratcheting mode of operation when afinite or limited number of quantized selections are available and/orlow resolution is required. For instance, a font size or font type foralphanumeric text on a GUI may be appropriate. In that case, some usersmay find that it is intuitive to associate ratcheting or “clicking” witheach selection. In another example, knob 500 may be configured for anon-ratcheting mode of operation when a large number of choices areavailable, high resolution is required, or a continuous gradient orscale of values can be selected. A ratcheting mode, even with highresolution (e.g., small “clicks”) would necessarily skip certain valuesin a continuous spectrum of choices. A non-ratcheting mode can allow auser to select any value with high precision, which may be desirable incertain situations (e.g., selecting a color for a 3D model in acontinuous spectrum of available colors). One of ordinary skill in theart would understand the many variations, modifications, and alternativeembodiments thereof.

In certain embodiments, a ratcheting effect is implement via knob 500,as shown and described with respect to FIGS. 5-7 and the accompanyingAppendix. In some embodiments, a knob with an embedded magneticratcheting system may include a magnetic ratchet, a clutch including afixed disc and a mobile friction disc, a bi-stable electromagneticclutch actuator, a magnetic angular sensor, a switch actuated by axialdisplacement of the knob, and a proximity detector electrode on theshaft end. Referring to FIG. 5, knob 500 includes knob portion 505, knobratchet armature 510, switch 520, angular sensor 525, angular sensormagnet 530, bi-stable electromagnetic clutch actuator 535, clutchcontrol mobile armature 540, non-magnetic clutch disc 545, switchablemagnetic wheel 550, ratchet assembly 555, fixed friction disc 560, andprinted circuit board (PCB) with electrode proximity detection 565. Theoperation of which would be understood by one of ordinary skill in theart with the benefit of this disclosure.

FIG. 6 shows magnetic ratchet 600 for a user-manipulable element,according to certain embodiments. In some embodiments, magnetic ratchet600 can include two similar armatures with teethed wheels and a ringmagnet assembled on a plastic rim. Improved torque efficiency can beobtained with two air gaps contributing to a reluctance variation.Magnetic ratchet 600 is shown with knob armature 610, and armaturemagnet assembly 620, which can be free or locked. The operation of whichwould be understood by one of ordinary skill in the art with the benefitof this disclosure.

FIG. 7 shows a bi-stable clutch mechanism 700 for an input device (e.g.,knob 450), according to certain embodiments. A bi-stable function of theactuator may be obtained by adding a non-linear force of a reluctantmagnetic circuit loaded by a ring magnet and a nearly constant force ofa helicoidal spring (see, e.g., the Appendix). In some implementations,the spring force can contribute to brake the teethed armatures toachieve the ratcheting effect by pushing against the clutch disc. Whenthe ratchet is off, the magnetic reluctance force may be higher than thespring force, causing the magnetic circuit to remain closed and allowingthe ratchet wheel to turn freely. In some embodiments, a non-magneticclutch disc can be placed between the ratchet wheel (teethed armatures)and the clutch control armature to separate the two magnetic circuits.In some cases, the non-magnetic clutch disc can also be used to adaptthe gap of the control system because the other parts stacked on theshaft may not be able to be controlled with tight tolerances. The clutchposition can be controlled by means of a coil. To switch off the ratcheteffect, a negative current can be fed into the coil to produce a pullingforce on the clutch control armature (e.g., moving clutch disc), whichcan be higher than the spring force. Referring to FIG. 7, bi-stableclutch mechanism 700 can include a passage for an electrode wire 705, aplastic ratchet bearing 710, a clutch fixed magnetic disk 715 (e.g.,crimped on the shaft), a PCB with electrode 720, teeth armature 725,ratchet ring magnet 730, teeth armature 735, non-magnetic clutch disc740, clutch control armature 745, spring 750, coil bell armature 755,coil 760, ring magnet 765 and shaft 770. The operation of which would beunderstood by one of ordinary skill in the art with the benefit of thisdisclosure.

Although many of the embodiments described herein use anelectro-magnetic actuator to implement the ratchet/non-ratchetfunctions, it should be understood that other implementations may usedifferent mechanisms to provide a controllable ratchet function. Forinstance, some embodiments may employ mechanical/friction ratchetmechanisms that can be actuated by a direct current (DC) motor (e.g.,see Appendices). One of ordinary skill in the art with the benefit ofthis disclosure would understand the many variations, modifications, andalternative embodiments thereof.

At a high level of abstraction, software operating on a host computingdevice (e.g., executed by processor 302) typically manages mappingfunctions (e.g., mapping editable parameters associated with selectablecontrol element with user-manipulable element (e.g., knob 450) on aninput device, as further discussed below) and interfacing betweencomputer software running on the host computing device (e.g.,Photoshop®) and the connected input device (e.g., knob 450).Alternatively or additionally, some management may be performed, inpart, by aspects (e.g., processor 210) of the corresponding inputdevice. From a user perspective, the user-manipulable element may beassociated with the graphical element closest to a cursor on a display.For example, as a user moves a cursor toward a first graphical element(e.g., selectable control element), knob 450 can be dynamicallyprogrammed to control an editable parameter (e.g., font type) associatedwith that graphical element. Similarly, as the user moves the cursortowards a second selectable control element, knob 450 may beautomatically and dynamically programmed to control an editableparameter (e.g., volume) associated with the second selectable controlelement. Alternatively or additionally, associating the user-manipulableobject with the editable parameter of a selectable control element canbe based on other criteria other than a location of a cursor. Forexample, a selectable control element may be selected to be associatedwith a user-manipulable object based on historical usage. Thus, a “mostused” selectable control element may be selected irrespective of thelocation of the cursor. Other methods of selection are possible, aswould be understood by one of ordinary skill in the art. The followingembodiments describe just some of the many embodiments that fall withinthe purview of this disclosure.

FIG. 8 shows a simplified flow diagram 800 for associating a functionwith a user-manipulable element on an input device, according to certainembodiments. Method 800 can be performed by processing logic that maycomprise hardware (circuitry, dedicated logic, etc.), software operatingon appropriate hardware (such as a general purpose computing system or adedicated machine), firmware (embedded software), or any combinationthereof In certain embodiments, method 800 can be performed by processor302 of system 300, as shown and described above with respect to FIGS. 1and 3.

At step 810, method 800 can include detecting, by a processor 302 on ahost computing device 110, a selectable control element on a graphicaluser interface (GUI), according to certain embodiments. A GUI can be agraphical window, virtual desktop, applications, or any image on adisplay (e.g., display 120) that a user can interact with. A selectablecontrol element can include any graphical element that can be controlledby a user. For example, some common selectable control elements caninclude desktop or window-based selectable icons, scroll bars, task barelements, tabs, text, media players, media player controls (e.g.,volume, pan, bass/treble, media transport controls, etc.), hyperlinks,or the like. One of ordinary skill in the art would understand the manypossible types of selectable control elements that could be selectableon a GUI. In some embodiments, some control elements may not be“selectable” such that a user cannot manipulate or interact with thecontrol element. For instance, a web page or PDF document may have asingle page with no controllable element (e.g., no scroll bar). In suchinstances, non-selectable elements, such as alphanumeric text may bedetected and used as described herein. In further embodiments, certaincontrol elements may not be “selectable” from a current view and may benested in various dropdown menus or interfaces. For example, a mediaplayer may include different skins (e.g., background images) with aselectable list of skins (i.e., the control element) buried in a nestedmenu. In such instances, the control element is not immediatelyselectable in a current view (outside of the corresponding menu bar),but can be detected nonetheless by host computing device 110. In certainembodiments, software configuring knob 450 may access particularsoftware operating on the host computing device to determine whatelements are included in a particular window. For instance, presentationsoftware can be accessed to determine what is included in eachparticular slide (e.g., embedded hyperlinks, spreadsheets, images,etc.), which is readily available and easily accessible as would beunderstood by one of ordinary skill in the art. Similarly, photo editingsoftware (e.g., Photoshop®) can be accessed to determine what selectablecontrol elements (e.g., icons, menus, etc.) are available. It should beunderstood that the various methods of identifying elements describedwith respect to FIG. 8 can be applied to any of the figures,embodiments, systems, or methods, etc., described herein, as would beunderstood by one of ordinary skill in the art.

At step 820, method 800 can include determining, by processor 302, aneditable parameter associated with the selectable control element,according to certain embodiments. An editable parameter can be anyadjustable value, setting, mode of operation, or the like, associatedwith the selectable control element. For example, a selectable controlelement can be alphanumeric text and the editable parameter can includea font size, font type, font color, text position (e.g., text can bemoved on the display in an x and y direction), or the like. In anotherexample, a media player can be the selectable control element and theeditable parameter can include a volume, pan, bass/treble settings,media transport controls, and the like. In a further example, a photomay be the selectable control element and the editable parameters caninclude a zoom (magnification), pan control, brightness, contrast,filter selection, etc. One of ordinary skill in the art would understandthe many variations, modifications, and alternative embodiments ofpossible selectable control elements and editable parameters.

At step 830, method 800 can include associating a control of theeditable parameter with user-manipulable element 150 on an input device140, according to certain embodiments. User-manipulable element 150 canbe a knob, button, scroll wheel, trackball, joystick, slider, or thelike, as would be understood by one of ordinary skill in the art. Oneexample of associating a control of the editable parameter withuser-manipulable element 150 (knob 150) can include associating afont-size selection for alphanumeric text on display 120 with knob 150.More non-limiting examples of are provided in FIGS. 9-13C. The examplesprovided herein generally describe associating a control of the editableparameter with a single user-manipulable element 150. Some embodimentsmay associate the editable parameter with multiple user-manipulableelements 150. In some cases, the same editable parameter for aselectable control element can be associated with differentuser-manipulable elements 150 based on certain contexts. For instance, avolume control on a media player may be associated with knob 150 duringtypical use, but may opt to associate the volume control with a slideror touch sensor on keyboard 140 when certain applications (e.g., digitalaudio workstation) are in use to, for example, make knob 150 availablefor other purposes. Control data and control signal can be usedinterchangeably throughout this disclosure.

At step 840, method 800 can include generating control data to assign aperformance characteristic to user-manipulable element 150 based onproperties of the editable parameter. The control data can be in anysuitable format that can control aspects (e.g., user-manipulable element150) of input device 140, as would be understood by one of ordinaryskill in the art. A performance characteristic for knob 150 can includea rotation resistance of the knob, a rotational input resolution of theknob (e.g., rotation sensitivity), setting a ratchet or non-ratchet modeof operation for the knob (e.g., via an internal magnetic clutch) basedon the properties of the editable parameter, or a depressible feature(e.g., knob 150 can be depressed like a button click). For buttons,touch sensors, sliders, or any other user-manipulable element 150,editable parameters can include button sensitivity, touch sensitivity,haptic feedback intensity, or the like. One of ordinary skill in the artwould understand the many variations, modifications, and alternativeembodiments thereof. Steps 830 and 840 can be separate steps or can beperformed in a single step (e.g., generating control data to bothassociate an editable parameter with a user-manipulable element andassign a performance characteristic to the user-manipulable element. Atstep 850, method 800 can include sending, by the host computing device(e.g., processor 302), the control signal to the input device (e.g.,processor 210).

It should be appreciated that the specific steps illustrated in FIG. 8provide a particular method 800 for assigning a function to auser-manipulable element on an input device, according to certainembodiments. Other sequences of steps may also be performed according toalternative embodiments. For example, alternative embodiments mayperform the steps outlined above in a different order. Moreover, theindividual steps illustrated in FIG. 8 may include multiple sub-stepsthat may be performed in various sequences as appropriate to theindividual step. Furthermore, additional steps may be added or removeddepending on the particular applications. For example, method 800 canfurther include receiving a first input data corresponding to a rotationof the knob, receiving a second input data corresponding to the rotationof the knob, and applying the first input data and second input data tothe editable parameter as a single continuous input when the first andsecond inputs are received within a threshold time. In this example, auser may turn knob 150 by 180 degrees, let go of knob 150, and re-grabknob 150 to turn it for an additional 70 degrees (e.g., if the usercannot sufficiently turn knob 150 in a single turn). To determinewhether the user intended the two turns to be separate or treated as asingle continuous turn, a threshold time (e.g., less than 1 second) canbe tracked between each input. For multiple inputs that occur within thethreshold time, the inputs can be treated as a single continuous input.Any suitable threshold time can be used, which may be shorter or longerthat the examples provided herein.

In another example, method 800 can further include receiving, byprocessor 302, input data corresponding to a movement of a cursor on theGUI, where the detecting the selectable control element on the GUIoccurs in response to detecting when the cursor is placed over theselectable control element. One of ordinary skill in the art wouldrecognize and appreciate many variations, modifications, andalternatives of method 800.

FIG. 9 shows aspects of a system 900 for associating a function with aninput device that corresponds to a selectable control element on adisplay, according to certain embodiments. More specifically, a usermanipulates first input device 930 (e.g., computer mouse, presenter,etc.) to move cursor 922 over selectable control element (“text”) 924 ondisplay 920. The host computer (e.g., host computer 110) can then detectcontrol element 924, determine certain editable parameters associatedwith text 924, associate a control of the editable parameter with auser-manipulable element (e.g., knob 950) on a second input device(e.g., keyboard 940) and generate a control signal to cause the secondinput device (e.g., processor 210 of keyboard 940) to assign aperformance characteristic (e.g., knob rotation) to the user-manipulableelement based on properties of the editable parameter. For instance,text 924 can include editable parameters such as font size and fonttype, which can include a number of discrete values. Thus, processor 302may determine that a rotation function would be better suited to cyclethrough available values (e.g., font sizes 8-72) then successive buttonpresses (e.g., depressing knob 950) or successive touch sensor touches(e.g., touch sensor 457) may be. In some embodiments, processor 210 ofinput device 940 may determine the appropriate user-manipulable elementto apply, while host computer 110 merely sends a control signalindicating what editable parameters need to be assigned. In some cases,the assignment can be controlled, in part, by both processors 302 and210. One of ordinary skill in the art with the benefit of thisdisclosure would understand the many variations, modifications, andalternative embodiments thereof.

In some embodiments, multiple editable parameters can be associated witha user-manipulable element (e.g., rotation of knob 950) and prioritizedin a hierarchical fashion. Referring to FIG. 9, a font size, font type,and font color are associated with alphanumeric text 924 and assigned toknob 950, respectively. In certain aspects, a user can cycle through andswitch between each editable parameter. For instance, a detected touchon a touch sensor (e.g., sensor 457) may execute a switch from font sizeto font type. A subsequently detected touch on the touch sensor maycause a switch from font size to font color, and so on. One of ordinaryskill in the art would understand the many variations, modifications,and alternative embodiments thereof.

The example shown in FIG. 9 shows a user manually selecting controlelement (“text”) 924. Alternatively or additionally, system 900 mayautomatically select a selectable control element without requiring userinteraction. Automatic selection can be performed based on any suitablecriteria, such as a hierarchy of preferred editable parameters, bymachine learning based on previous user selections and interactions, byapplication-based preset conditions, or the like, and by any combinationthereof.

FIG. 10 shows aspects of associating a function with a user-manipulableobject 150 on an input device 1040, according to certain embodiments,and includes display 1020 (e.g., operated by aspects of system 300),keyboard 1040 (e.g., operated by aspects of system 300), and knob 1050.As described above, a ratchet or non-ratchet mode of operation canselectively be applied to a user-manipulable control based on propertiesof a corresponding editable parameter. In some cases, it may beadvantageous to apply a ratchet mode of operation to knob 1050 whenalphanumeric text is detected on display 1020, as a limited number ofdiscrete settings (e.g., font size, font type, number of brushes, numberof selectable tabs, etc.) may be more intuitively controlled withdiscrete positions on knob 1050. Referring to FIG. 10, as knob 1050 isrotated clockwise, larger discrete font sizes (or any suitable editableparameter associated with a detected selectable control element) areapplied to the corresponding text (e.g., selectable control element) ondisplay 1020. In alternative embodiments, font size or font type could,for example, be associated with knob 1050 having the ratchet mode turnedoff such that the rotation of knob 1050 is smooth and changes in theunderlying editable parameter can be configured to change between valuesas knob 1050 is rotated a certain distance (e.g., switch values every 20degree rotation). In some embodiments, multiple performancecharacteristics may be associated with a single editable parameter. Forinstance, knob 1050 may be configured to control a font type as knob1050 is rotated, a ratchet mode may be applied, and a resistance ofrotation may be configured to increase or decrease as the selectedvalues increase or decrease. One of ordinary skill in the art wouldunderstand the many variations, modifications, and alternativeembodiments thereof.

In some embodiments, the number of ratchet positions in 360 degrees ofrotation can be controlled by software operating on host computingdevice (e.g., via method 800). In some cases, a ratchet torque (e.g.,rotational resistance) can be configured to correspond to a number ofratchet positions. For example, a low number of ratchet positions (e.g.,line width) may have a higher relative rotational resistance associatedwith it (e.g., harder for a user to rotate knob 1050), while a highnumber of ratchet positions (e.g., number of brushes) may have a lowerrelative rotational resistance associated with it (e.g., easier for auser to rotate knob 1050). Some embodiments can include very highrotational resistance when a minimum or maximum software value isreached to indicate to the user that the corresponding parameter (e.g.,volume) cannot be increased or decreased beyond a current value. In somecases, a default value may have a higher rotation resistance thanadjacent ratchet settings to indicate a center position, default value,preferred setting, or the like. One of ordinary skill in the art wouldunderstand the many variations, modifications, and alternativeembodiments thereof.

FIG. 11 shows aspects of associating a function with a user-manipulableobject 1150 on an input device 1140, according to certain embodiments,and includes display 1120 (e.g., operated by aspects of system 300),keyboard 1140 (e.g., operated by aspects of system 300), and knob 1150.As described above, a ratchet or non-ratchet mode of operation canselectively be applied to a user-manipulable control based on propertiesof a corresponding editable parameter. In some cases, it may beadvantageous to apply a non-ratchet mode of operation to knob 1150 whenan image is detected on display 1120 and a corresponding editableparameter has a very high number of settings (e.g., continuous, highresolution color gradient). In such cases, it may be more intuitivelycontrolled with a continuous rotation on knob 1150. Referring to thenon-limiting example shown in FIG. 10, as knob 1150 is rotatedclockwise, value indicator 1165 can increase as it moves to the right oncolor gradient selection bar 1160. Typically, non-ratchet conditions maybe well-suited for editable parameters that have high granularity,sensitive adjustments, or the like. Alternatively, some embodiments mayemploy a ratchet mode of operation to select colors. One of ordinaryskill in the art would understand the many variations, modifications,and alternative embodiments thereof

In certain embodiments, a non-ratchet mode may be applied to provide auser with an “analog” control over the associated editable parameter. Insome cases, the friction torque (e.g., rotational resistance) of knob1150 can depend on the software parameter type (e.g., editableparameter). For instance, scrolling in a large document may cause knob1150 to be configured in non-ratchet mode with a low rotationalresistance (e.g., for fast scrolling), while a volume control (e.g.,selectable control element) may cause knob 1150 to have a highrotational resistance (e.g., to prevent inadvertent large changes involume). Rotational resistance may be set to a maximum value when aminimum or maximum value for an editable parameter is met (e.g., scrollat top or bottom of document). In some cases, a default value may have ahigher rotational resistance than adjacent settings of knob 1150 to givethe impression of a single ratchet “dip” at a default position. One ofordinary skill in the art would understand the many variations,modifications, and alternative embodiments thereof.

FIG. 12A shows aspects of associating a function with a user-manipulableobject on an input device, according to certain embodiments. In certainsituations, a user may want to cycle through a number of settings and/orvalues to determine a preferred outcome without necessarily entering thevalue until they are sure of their selection. In such cases, a touchsensor (e.g., touch sensor 457) disposed on knob 1250 can be configuredto enter a currently selected value when touched. Referring to FIG. 12A,the alphanumeric text “design” is selected and the user is manipulatingknob 1250 to set a particular value for a corresponding editableparameter (e.g., font size). The user can then tap the touch sensor onknob 1250 to “enter” the value selected, thereby confirming a userintent to apply a specific setting. In some embodiments, processor 210may receive the touch sensor input signal and relay the signal to thecorresponding host computing device (e.g., host computer 110) to applythe setting. Alternatively or additionally, the control signal from thehost computer that initially detected the “design” text and determinedone or more associated editable parameters may cause the touch sensor ofknob 1250 to control the “enter value” function as described above. Insome cases, the control signal may provide the editable parameters andthe input device (e.g., processor 210) may select and control which usermanipulable element is assigned the “enter value” function. One ofordinary skill in the art would understand the many variations,modifications, and alternative embodiments thereof.

FIG. 12B shows aspects of associating a function with a user-manipulableobject on an input device, according to certain embodiments. In certainsituations, a user may want to switch between editable parameters toachieve a particular setting for the selectable control element. In suchcases, a touch sensor (e.g., touch sensor 457) disposed on knob 1250 canbe configured to switch between selectable elements associated with acurrently selected control element. Referring to FIG. 12B, thealphanumeric text “technology” is selected. In response to the usertouching the touch sensor, the selected editable parameter switches fromfont size to font type, and subsequent rotations of knob 1250 change thefont type accordingly. In some embodiments, processor 210 may receivethe touch sensor input signal and relay the signal to the correspondinghost computing device (e.g., host computer 110) to apply the setting.Alternatively or additionally, the control signal from the host computerthat initially detected the “design” text and determined one or moreassociated editable parameters may cause the touch sensor of knob 1350to control the “enter value” function as described above. In some cases,the control signal may provide the editable parameters and the inputdevice (e.g., processor 210) may select and control which usermanipulable element is assigned the “switch” function. In someembodiments, the switching function (or any function) can be associatedwith other controls, keys, etc. (e.g., assigned hot keys, function keys,etc., of a corresponding input device).

Some embodiments may associate other functions with the one or moretouch sensors on knob 1250. For instance, short presses, long presses,multiple presses, and the like, can be configured to cause differentfunctions to occur. In some cases, a single short press may implementvalidation (e.g., enter a value of an editable parameter—as describedabove), a long press may switch the editable parameter of thecorresponding selectable control element, and a double tap may change aposition in a menu hierarchy (e.g., switching from a first levelincluding fonts, colors, and tools, to a lower level of fonts includingfont size and font type). One of ordinary skill in the art wouldunderstand the many variations, modifications, and alternativeembodiments thereof.

Proximity detection can be used with the one or more touch sensors,according to certain embodiments. For instance, power managementfunctions (e.g., operated by power management block 230) may beassociated with proximity detection where the supporting electronics forknob 1250 can turn on when a user's hand is determined to be in closeproximity, which may be advantageous for power sensitive cordless inputdevices (e.g., keyboards, computer mice, etc.). One of ordinary skill inthe art would understand the many variations, modifications, andalternative embodiments thereof.

FIGS. 13A-C show aspects of associating a function with auser-manipulable object, according to certain embodiments. FIGS. 13A-Cinclude display 1320 with a selected control element (e.g., gray scalegradient bar), a knob 1350 on an input device, and a corresponding touchsensitive region 1354 around a side portion or perimeter of knob 1350.In some cases, a user may wish to adjust an editable parameterassociated with knob 1350 to a value that they cannot reach with asingle rotation. In some configurations, an adjusted value may revertback to a default value when a user let's go of knob 1350 (e.g., touchsensor 1354 may detect that a user is no longer touching knob 1350).This may be the case when entering a value occurs in response totouching a touch sensor, as discussed above with respect to FIG. 12A.With this setting, it can be cumbersome and inefficient is a user has tokeep their fingers on a touch sensor while trying to rotate a knobbeyond 270 degrees or more, for example. One solution may be to taptouch sensor 1250 half way through the rotation to “save” the settingand then re-grip the knob to continue the rotation.

In certain embodiments, a threshold time can be used to determine whenan input is intended to be completed. For instance, in FIG. 13A, theuser rotates knob 1350 approximately 100 degrees causing an adjustmentof a gray-scale gradient bar on display 1320. In FIG. 13B, the userlet's go of knob 1350 and repositions his hand to continue rotating knob1350, causing adjustment of the gradient bar to pause. In FIG. 13C, theuser continues the rotation of knob 1350 for an additional 100 degrees,thereby causing the adjustment of the gradient bar to continue. In someembodiments, if the time between the user letting go of knob 1350 inFIG. 13B and re-gripping knob 1350 in FIG. 13C is less than a thresholdtime (e.g., 2 seconds), then the adjustments of FIGS. 13A and 13C aretreated as a continuous adjustment and the default auto-reset functionmentioned above would be avoided. The threshold time can be any suitablevalue and may be shorter or longer than the examples provided herein.Thus, in certain embodiments, processor 210 can receive a first inputdata corresponding to a rotation of knob 1350, receive a secondsubsequent input data corresponding to the rotation of knob 1350, andapply the first input data and second input data to a correspondingeditable parameter as a single continuous input when the first andsecond inputs are received within the threshold time.

In some embodiments, touch sensors 1354 can detect multiple simultaneoustouches (e.g., thumb, forefinger, and middle finger detection whenadjusting knob 1350), which can be useful for location-dependent touchdetection. For instance, some embodiments may increase a sensitivity ofthe adjustment of an editable parameter when a user grips knob 1350 withthree fingers instead of two. In some cases, a memory buffer (e.g.,memory array 220 or 308) can be used to store how certain users interactwith knob 1350. For instance, a first user may typically use two fingersat diametrically opposed locations on knob 1350 (i.e., user gripprofile), while a second user may typically grip knob 1350 with threefingers, or with two fingers at different non-diametrically opposedlocations. In such instances (e.g., through machine learning viaprocessor 210 and/or 302), certain editable parameters with particularsensitivities may be assigned to knob 1350 in response to detecting aparticular selectable control element when the first user is determinedto be interacting with knob 1350 (e.g., based on previous first userinteractions), and different editable parameters with differentsensitivities may be assigned to knob 1350 in response to detecting theselectable control element when the second user is determined to beinteracting with knob 1350 (e.g., based on the grip profile). One ofordinary skill in the art would understand the many variations,modifications, and alternative embodiments thereof.

Other variations are within the spirit of the present disclosure. Thus,while the disclosed techniques are susceptible to various modificationsand alternative constructions, certain illustrated embodiments thereofare shown in the drawings and have been described above in detail. Itshould be understood, however, that there is no intention to limit thedisclosure to the specific form or forms disclosed, but on the contrary,the intention is to cover all modifications, alternative constructionsand equivalents falling within the spirit and scope of the disclosure,as defined in the appended claims.

The use of the terms “a” and “an” and “the” and similar referents in thecontext of describing the disclosed embodiments (especially in thecontext of the following claims) are to be construed to cover both thesingular and the plural, unless otherwise indicated herein or clearlycontradicted by context. The terms “comprising,” “having,” “including,”and “containing” are to be construed as open-ended terms (i.e., meaning“including, but not limited to,”) unless otherwise noted. The term“connected” is to be construed as partly or wholly contained within,attached to, or joined together, even if there is something intervening.The phrase “based on” should be understood to be open-ended, and notlimiting in any way, and is intended to be interpreted or otherwise readas “based at least in part on,” where appropriate. Recitation of rangesof values herein are merely intended to serve as a shorthand method ofreferring individually to each separate value falling within the range,unless otherwise indicated herein, and each separate value isincorporated into the specification as if it were individually recitedherein. All methods described herein can be performed in any suitableorder unless otherwise indicated herein or otherwise clearlycontradicted by context. The use of any and all examples, or exemplarylanguage (e.g., “such as”) provided herein, is intended merely to betterilluminate embodiments of the disclosure and does not pose a limitationon the scope of the disclosure unless otherwise claimed. No language inthe specification should be construed as indicating any non-claimedelement as essential to the practice of the disclosure.

What is claimed is:
 1. A computer-implemented method comprising:detecting, by a processor on a host computing device, a selectablecontrol element on a graphical user interface (GUI); determining, by theprocessor, an editable parameter associated with the selectable controlelement; associating a control of the editable parameter with auser-manipulable element on an input device; and generating and sending,by the processor to the input device, control data causing the inputdevice to assign a performance characteristic to the user-manipulableelement based on properties of the editable parameter.
 2. The method ofclaim 1 wherein the user-manipulable element is a rotatable knob on theinput device.
 3. The method of claim 2 wherein the performancecharacteristic is a rotation resistance of the knob.
 4. The method ofclaim 2 wherein assigning the performance characteristic to the knobfurther includes setting a ratchet or non-ratchet mode of operation tothe knob based on the properties of the editable parameter.
 5. Themethod of claim 4 wherein the control data controls an electro-magneticactuator in the knob to set the ratchet mode and non-ratchet mode ofoperation.
 6. The method of claim 2 wherein the performancecharacteristic is a rotational input resolution of the knob.
 7. Themethod of claim 2 further comprising: receiving a first input datacorresponding to a rotation of the knob; receiving a second input datacorresponding to the rotation of the knob; and applying the first inputdata and second input data to the editable parameter as a singlecontinuous input when the first and second input data are receivedwithin a threshold time.
 8. The method of claim 2 wherein the knobfurther includes a touch sensor on a surface of the knob, and whereinassociating a control of the editable parameter with the knob furtherincludes assigning a function with the touch sensor.
 9. The method ofclaim 8 wherein the function includes entering a value of the editableparameter in response to receiving input data corresponding to a touchdetected by the touch sensor.
 10. The method of claim 8 wherein thefunction includes switching to a second editable parameter associatedwith the selectable control element in response to receiving input datacorresponding to a touch detected by the touch sensor.
 11. The method ofclaim 8 wherein the knob further includes a second touch sensor on aperimeter of the knob, and wherein the function includes switching to asecond editable parameter associated with the selectable control elementin response to receiving: input data corresponding to a touch detectedby the touch sensor; and input data corresponding to a touch detected bythe second touch sensor.
 12. The method of claim 8 wherein the knobfurther includes one or more additional touch sensors around a perimeterof the knob to detect multiple simultaneous touches on the perimeter.13. The method of claim 1 wherein the selectable control element is oneof: a selectable icon on the GUI; a selectable item in a menu on theGUI; or a graphical element on the GUI.
 14. The method of claim 1further comprising: receiving, by the processor, input datacorresponding to a movement of a cursor on the GUI, wherein thedetecting the selectable control element on the GUI occurs in responseto detecting when the cursor is placed over the selectable controlelement.
 15. The method of claim 14 wherein the user-manipulable elementincludes a touch sensor, and wherein assigning the performancecharacteristic to the user-manipulable element is performed further inresponse to receiving an input corresponding to a touch on the touchsensor.
 16. An input device comprising: a housing; a processor disposedin the housing; a user-manipulable knob disposed on the housing andcontrolled by the processor; and a ratchet system disposed in the knobto apply one of a ratcheted or non-ratcheted mode to the knob, whereinthe processor controls an operational configuration of theuser-manipulable knob based on control data received from the hostcomputing device, the operational configuration corresponding to acontextual usage of the input device on the host computing device, andwherein the operational configuration includes an assigned ratcheted ornon-ratcheted mode based on the control data.
 17. The input device ofclaim 16 further comprising: a touch sensor controlled by the processorand disposed on a surface of the knob to detect a touch, wherein theoperational configuration further includes an assigned touch sensor modebased on the control data.
 18. A computer-implemented system: one ormore processors; and one or more non-transitory computer-readablestorage mediums containing instructions configured to cause the one ormore processors to perform operations including: detecting, by aprocessor on a host computing device, a selectable control element on agraphical user interface (GUI); determining, by the processor, aneditable parameter associated with the selectable control element;associating a control of the editable parameter with a user-manipulableelement on an input device; and generating and sending, by the processorto the input device, control data causing the input device to assign aperformance characteristic to the user-manipulable element based onproperties of the editable parameter.
 19. The system of claim 18 whereinthe user manipulable element is a rotatable knob on the input device,and wherein the performance characteristic is a rotation resistance ofthe knob.
 20. The system of claim 19 wherein assigning the performancecharacteristic to the knob further includes setting a ratchet ornon-ratchet mode of operation to the knob based on the properties of theeditable parameter.